Skip to content

rewrite sender-adaptor-closure infra#220

Open
ecoezen wants to merge 1 commit intobemanproject:mainfrom
ecoezen:sender-adaptor-closure
Open

rewrite sender-adaptor-closure infra#220
ecoezen wants to merge 1 commit intobemanproject:mainfrom
ecoezen:sender-adaptor-closure

Conversation

@ecoezen
Copy link

@ecoezen ecoezen commented Feb 18, 2026

  • Refactor sender-adaptor closure infrastructure around sender_adaptor_closure, adaptor_closure, and composed closure piping.
  • Migrate adaptor implementations (then, bulk, let, continues_on, associate, on, affine_on) to the closure-based path.
  • Enforce [exec.adapt.obj] constraints and behavior: pipe equivalence, composition semantics, construction well-formedness, and noexcept propagation.
  • Expand sender_adaptor_closure tests for uniqueness detection, composition associativity, composed call pattern, partial application well-formedness, and pipe parity.
  • Replace to and deprecate direct detail::sender_adaptor alias in favor of make_sender_adaptor(...) factories and document the direct-use layout break (Adaptor moved into adaptor_closure_binding with [[no_unique_address]] for EBO, pending product_type support).
  • Apply quality cleanup in sender_adaptor_closure module/header exports and comments.
  • Remove wrong assumptions about adaptor closures on [exec-on.test.cpp: struct both] per https://eel.is/c++draft/exec.adapt#obj-2 : closure cannot be a sender at the same time.
  • Add docs in headers.

Resolves #198

…gration

- Refactor sender-adaptor closure infrastructure around sender_adaptor_closure, adaptor_closure, and composed closure piping.
- Migrate adaptor implementations (then, bulk, let, continues_on, associate, on, affine_on) to the closure-based path.
- Enforce [exec.adapt.obj] constraints and behavior: pipe equivalence, composition semantics, construction well-formedness, and noexcept propagation.
- Expand sender_adaptor_closure tests for uniqueness detection, composition associativity, composed call pattern, partial application well-formedness, and pipe parity.
- Deprecate direct detail::sender_adaptor alias in favor of make_sender_adaptor(...) factories and document the direct-use layout break (Adaptor moved into adaptor_closure_binding with [[no_unique_address]] for EBO, pending product_type support).
- Apply quality cleanup in sender_adaptor_closure module/header exports and comments.
- Add docs in headers.
@ecoezen ecoezen force-pushed the sender-adaptor-closure branch from ed25811 to 8a21a3c Compare February 18, 2026 22:42
@coveralls
Copy link

Coverage Status

coverage: 95.14% (+0.02%) from 95.116%
when pulling 8a21a3c on ecoezen:sender-adaptor-closure
into 07d53da on bemanproject:main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

composing sender adaptor closures doesn't work

2 participants

Comments